


		SOLUTIE IN TIMP SUBLINIAR
	       ---------------------------

	Problema are 2 proprietati importante. Prima proprietate restrange
intervalul de cautare a solutiei: este suficient ca valorile L care satisfac
restrictiile problemei sa fie cautate in intervalul [2, sqrt(N) ]. A doua
proprietate arata ca diferenta D-B este pozitiva pt. orice L cuprins intre
2 si sqrt(N), iar valoarea minima a diferentei se obtine pt. valoarea maxima
a lui L care satisface problema.

Lema:	Nu exista nici o valoare sqrt(N) < L < N pt. care ecuatiile (c1) si
-----	(c2) sunt satisafacute.

(c1): N modulo L = 0
(c2): (N-1) modulo (L-1) = 0

	Sa consideram ca exista o valoare sqrt(N)<L<N care satisface ecuatiile
(c1) si (c2). Atunci trebuie sa existe 2 intregi q1>0 si q2>0 a.i.

N = q2*l
N-1 = q1*(L-1)


q1 = (q2*L-1)/(L-1) = (q2*(L-1) + q2-1)/(L-1) = q2 + (q2-1)/(L-1)

	Pt. ca sqrt(N) <L -> q2<sqrt(N) -> q2<L. Atunci (q2-1)/(L-1)<1
-> q2<=q1<q2+1

	Deoarece q1 si q2 sunt intregi -> q1=q2 -> N(N-1) = L/(L-1) -> L=N,
contrar ipotezei.

Lema: Valoarea minima pentru |D-B| se obtine pt. cea mai mare valoarea L, 1<L<N
-----	care satisface ecuatiile (c1) si (c2).

D-B este o fucntie de L: f(L) = (N-1)/(L-1) - N/L = (N-L)/(L*(L-1))

	Comportarea functiei trebuie studiata pentru 1<L<N. Daca L=N atunci B=1,
contrar restricitiei (1), iar daca L=1 nu poate fi satisfacuta restrictia (4).

	Pt. 1<L<N avem f(L)>0 si,deci, f(L) = |D-b) pentru intervalul considerat.
Extremele functiei rezulta din prima derivata:

f'(L) = ((L-N)^2 - N*(N-1))/(L^2 * (L-1)^2)

	Derivata se anuleaza pt. L1 = N-sqrt(N*(N-1)) si L2 = N+sqrt(N*(N-1)).

L1 = (N-1) + sqrt(N*(N-1)) +1 <= (N-1) - sqrt ((N-1)*(N-1)) +1 =1
L2 > N.

	Nici L1, nici L2 nu sunt solutii acceptabile si, deci, f(L) nu are extrem
pt. valorile acceptabile ale lui L, valori intregi in intervalul (1,N). In plus, functia
f este descrescatoare si pozitiva in interval. Rezulta imediat ca valoarea minima posibila
pt. |D-B| este obtinuta pt. valoarea cea mai mare a lui L, 1<L<N, care satisface sistemul
de ecuatii (c1) si (c2).


-> Algoritm:
------------

pentru fiecare L de la [sqrt(N)] la 2 executa

	daca N este divixibil prin L si (N-1) este divizibil prin (L-1) atunci
	{
	B=N/L; D=(N-1)/(L-1);
	rezultate L,B,D;
	}

rezultate "No solution"
